| Stewart\Codegen\Exception\CodegenError::messageTemplate | 110 | 0.0% |
| Stewart\Codegen\Service\FieldModel::boundsNote | 72 | 0.0% |
| Stewart\Codegen\Snapshot\RawMap::readNumber | 12 | 0.0% |
| Stewart\Codegen\Emitter\Service\ServiceMethodEmitter::buildDocblock | 9 | 100.0% |
| Stewart\Codegen\Output\OutputDirectory::orphanedGeneratedFiles | 9 | 100.0% |
| Stewart\Codegen\Output\OutputDirectory::writeFileAtomically | 7.46 | 40.0% |
| Stewart\Codegen\Attribute\AttributeKind::ofValue | 7 | 100.0% |
| Stewart\Codegen\Output\OutputDirectory::writeChanges | 7 | 100.0% |
| Stewart\Codegen\Attribute\AttributeKind::getReaderMethodName | 6 | 100.0% |
| Stewart\Codegen\Attribute\AttributeKind::getPhpType | 6 | 100.0% |
| Stewart\Codegen\Attribute\AttributeSelector::selectAttributes | 6 | 100.0% |
| Stewart\Codegen\Console\GenerationOptionsFactory::buildAttributeFilters | 6 | 0.0% |
| Stewart\Codegen\Service\FieldModel::type | 6 | 0.0% |
| Stewart\Codegen\Service\FieldModel::summary | 6 | 0.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::decodeEntriesSkippingInvalidIds | 6 | 100.0% |
| Stewart\Codegen\Service\ServiceTargetSpec::fromRaw | 5.02 | 90.9% |
| Stewart\Codegen\Attribute\AttributeKindInference::inferKindsByAttributeName | 5 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::normalizePath | 5 | 100.0% |
| Stewart\Codegen\Emitter\SourceTree::renderFiles | 5 | 100.0% |
| Stewart\Codegen\Emitter\Entity\EntityHandleEmitter::emitFile | 5 | 98.6% |
| Stewart\Codegen\Emitter\Entity\EntityStateEmitter::emitFile | 5 | 100.0% |
| Stewart\Codegen\Emitter\Service\DomainServicesEmitter::emitFile | 5 | 100.0% |
| Stewart\Codegen\Emitter\Service\ServiceMethodEmitter::addDomainServiceMethod | 5 | 100.0% |
| Stewart\Codegen\Output\OutputDirectory::outcomeFor | 5 | 100.0% |
| Stewart\Codegen\Php\MemberScope::getCollisionSuffix | 5 | 100.0% |
| Stewart\Codegen\Php\PhpType::nullable | 5 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::decodeRegistryRows | 5 | 100.0% |
| Stewart\Codegen\Output\OutputDirectory::ensureDirectory | 4.25 | 75.0% |
| Stewart\Codegen\Output\OutputDirectory::removeFile | 4.12 | 50.0% |
| Stewart\Codegen\Emitter\Service\ServiceMethodEmitter::listReservedMemberNames | 4 | 100.0% |
| Stewart\Codegen\Entity\EntitySelector::selectEntities | 4 | 100.0% |
| Stewart\Codegen\Service\ServiceSelector::phpTypeForKind | 4 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::decodeSnapshot | 4 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::buildSnapshotFromDecodedJson | 4 | 100.0% |
| Stewart\Codegen\Snapshot\RawMap::listMaps | 3.04 | 83.3% |
| Stewart\Codegen\Snapshot\RawMap::listStrings | 3.04 | 83.3% |
| Stewart\Codegen\Attribute\AttributeSelector::isTypeable | 3 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::execute | 3 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::describeAutoloadMismatch | 3 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::printCheckResult | 3 | 100.0% |
| Stewart\Codegen\Emitter\Service\DomainServicesEmitter::anyTargetable | 3 | 100.0% |
| Stewart\Codegen\Emitter\Service\DomainServicesEmitter::anyReturnsResponse | 3 | 100.0% |
| Stewart\Codegen\Emitter\Service\ServiceMethodEmitter::addHandleMethod | 3 | 100.0% |
| Stewart\Codegen\Emitter\Service\ServiceMethodEmitter::declareMethod | 3 | 100.0% |
| Stewart\Codegen\Emitter\Service\ServiceMethodEmitter::addFieldParameters | 3 | 100.0% |
| Stewart\Codegen\Entity\EntityInclusionRules::allows | 3 | 100.0% |
| Stewart\Codegen\Entity\EntitySelector::isHiddenAway | 3 | 100.0% |
| Stewart\Codegen\Model\GenerationModelFactory::selectParameterScope | 3 | 100.0% |
| Stewart\Codegen\Output\OutputDirectory::planChanges | 3 | 100.0% |
| Stewart\Codegen\Php\Identifier::convertToCamelCase | 3 | 100.0% |
| Stewart\Codegen\Php\Identifier::convertToPascalCase | 3 | 100.0% |
| Stewart\Codegen\Php\IdentifierAllocator::claim | 3 | 100.0% |
| Stewart\Codegen\Php\IdentifierAllocator::claimExactly | 3 | 100.0% |
| Stewart\Codegen\Service\ServiceCatalogParser::parseServicesResponse | 3 | 100.0% |
| Stewart\Codegen\Service\ServiceCatalogParser::flattenFields | 3 | 100.0% |
| Stewart\Codegen\Service\ServiceSelector::resolvePhpType | 3 | 100.0% |
| Stewart\Codegen\Service\ServiceSelector::phpTypeForSelect | 3 | 100.0% |
| Stewart\Codegen\Service\ServiceTargetSpec::acceptsDomain | 3 | 100.0% |
| Stewart\Codegen\Snapshot\HaClientSnapshotFetcher::refuseUnlessRunning | 3 | 100.0% |
| Stewart\Codegen\Snapshot\RawMap::readString | 3 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotFileReader::readSnapshot | 3 | 100.0% |
| Stewart\Codegen\Emitter\PhpStormMetaEmitter::buildRegistryIdCompletion | 2.02 | 83.3% |
| Stewart\Codegen\GenerationTarget::__construct | 2 | 0.0% |
| Stewart\Codegen\GenerationTarget::classFor | 2 | 0.0% |
| Stewart\Codegen\Attribute\AttributeKind::widen | 2 | 100.0% |
| Stewart\Codegen\Attribute\AttributeModel::__construct | 2 | 0.0% |
| Stewart\Codegen\Attribute\AttributeSelection::__construct | 2 | 0.0% |
| Stewart\Codegen\Attribute\Collection\AttributeFilterCollection::keyedByDomain | 2 | 0.0% |
| Stewart\Codegen\Attribute\Collection\AttributeFilterCollection::find | 2 | 0.0% |
| Stewart\Codegen\Console\GenerateCommand::copySnapshotIfRequested | 2 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::generateFromSnapshot | 2 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::selectShrinkPolicy | 2 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::loadSnapshot | 2 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::printWarnings | 2 | 100.0% |
| Stewart\Codegen\Console\GenerationOptionsFactory::createFromCodegenConfig | 2 | 0.0% |
| Stewart\Codegen\Emitter\EmitContext::importClass | 2 | 100.0% |
| Stewart\Codegen\Emitter\PhpStormMetaEmitter::emitFile | 2 | 100.0% |
| Stewart\Codegen\Emitter\RootEmitter::emitFile | 2 | 100.0% |
| Stewart\Codegen\Emitter\RootEmitter::listReservedMemberNames | 2 | 100.0% |
| Stewart\Codegen\Emitter\SourceTree::__construct | 2 | 0.0% |
| Stewart\Codegen\Emitter\Entity\EntityHandleEmitter::__construct | 2 | 0.0% |
| Stewart\Codegen\Emitter\Entity\EntityHandleEmitter::listReservedMemberNames | 2 | 100.0% |
| Stewart\Codegen\Emitter\Entity\EntityStateEmitter::listReservedMemberNames | 2 | 100.0% |
| Stewart\Codegen\Emitter\Service\DomainServicesEmitter::__construct | 2 | 0.0% |
| Stewart\Codegen\Emitter\Service\DomainServicesEmitter::listReservedMemberNames | 2 | 100.0% |
| Stewart\Codegen\Emitter\Service\ServiceMethodEmitter::buildPayload | 2 | 100.0% |
| Stewart\Codegen\Exception\CodegenException::fileNotWritable | 2 | 0.0% |
| Stewart\Codegen\Model\DomainModel::__construct | 2 | 0.0% |
| Stewart\Codegen\Model\DomainModel::getEntitiesClass | 2 | 0.0% |
| Stewart\Codegen\Model\DomainModel::getHandleClass | 2 | 0.0% |
| Stewart\Codegen\Model\DomainModel::getStateClass | 2 | 0.0% |
| Stewart\Codegen\Model\DomainModel::getServicesClass | 2 | 0.0% |
| Stewart\Codegen\Model\DomainModel::isOnOff | 2 | 0.0% |
| Stewart\Codegen\Model\DomainModel::isNumeric | 2 | 0.0% |
| Stewart\Codegen\Model\DomainModel::hasEntities | 2 | 0.0% |
| Stewart\Codegen\Model\DomainModel::hasServices | 2 | 0.0% |
| Stewart\Codegen\Model\GenerationModel::__construct | 2 | 0.0% |
| Stewart\Codegen\Model\GenerationModel::listEntityDomains | 2 | 0.0% |
| Stewart\Codegen\Model\GenerationModel::listServiceDomains | 2 | 0.0% |
| Stewart\Codegen\Model\GenerationModel::countEntities | 2 | 0.0% |
| Stewart\Codegen\Model\GenerationModel::countAttributes | 2 | 0.0% |
| Stewart\Codegen\Model\GenerationModel::countServices | 2 | 0.0% |
| Stewart\Codegen\Model\GenerationModelFactory::__construct | 2 | 0.0% |
| Stewart\Codegen\Model\GenerationModelFactory::buildModelFromSnapshot | 2 | 100.0% |
| Stewart\Codegen\Model\GenerationModelFactory::buildAttributeModels | 2 | 100.0% |
| Stewart\Codegen\Model\GenerationModelFactory::buildServiceModels | 2 | 100.0% |
| Stewart\Codegen\Model\GenerationModelFactory::buildFieldModels | 2 | 100.0% |
| Stewart\Codegen\Model\Collection\DomainModelCollection::havingEntities | 2 | 0.0% |
| Stewart\Codegen\Model\Collection\DomainModelCollection::havingServices | 2 | 0.0% |
| Stewart\Codegen\Model\Collection\DomainModelCollection::countAttributes | 2 | 0.0% |
| Stewart\Codegen\Output\GeneratedFile::forClass | 2 | 0.0% |
| Stewart\Codegen\Output\GenerationReport::__construct | 2 | 0.0% |
| Stewart\Codegen\Output\GenerationReport::summary | 2 | 0.0% |
| Stewart\Codegen\Output\OutputDirectory::refuseLargeShrink | 2 | 100.0% |
| Stewart\Codegen\Php\Identifier::__construct | 2 | 0.0% |
| Stewart\Codegen\Php\Identifier::startsWithLetter | 2 | 100.0% |
| Stewart\Codegen\Php\Identifier::splitIntoAsciiWords | 2 | 100.0% |
| Stewart\Codegen\Php\MemberReservations::createAllocatorFor | 2 | 100.0% |
| Stewart\Codegen\Service\FieldModel::__construct | 2 | 0.0% |
| Stewart\Codegen\Service\ServiceDefinition::belongsOnHandle | 2 | 100.0% |
| Stewart\Codegen\Service\ServiceModel::__construct | 2 | 0.0% |
| Stewart\Codegen\Service\ServiceSelector::phpTypeForConstant | 2 | 100.0% |
| Stewart\Codegen\Service\ServiceSelector::selectOptionValues | 2 | 100.0% |
| Stewart\Codegen\Service\Collection\ServiceDefinitionCollection::forEntityHandle | 2 | 0.0% |
| Stewart\Codegen\Snapshot\RawMap::fromValue | 2 | 100.0% |
| Stewart\Codegen\Snapshot\RawMap::hasKey | 2 | 0.0% |
| Stewart\Codegen\Snapshot\RawMap::readScalar | 2 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::buildEntityStateArray | 2 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotFileWriter::writeSnapshot | 2 | 100.0% |
| Stewart\Codegen\GenerationOptions::__construct | 1 | 100.0% |
| Stewart\Codegen\GenerationOptions::attributesFor | 1 | 100.0% |
| Stewart\Codegen\Generator::__construct | 1 | 100.0% |
| Stewart\Codegen\Generator::writeFiles | 1 | 100.0% |
| Stewart\Codegen\Generator::checkAgainstSnapshot | 1 | 100.0% |
| Stewart\Codegen\Attribute\AttributeCatalog::listKindsForDomain | 1 | 100.0% |
| Stewart\Codegen\Attribute\AttributeCatalog::findKind | 1 | 100.0% |
| Stewart\Codegen\Attribute\AttributeFilter::__construct | 1 | 100.0% |
| Stewart\Codegen\Attribute\AttributeFilter::excludes | 1 | 100.0% |
| Stewart\Codegen\Attribute\AttributeFilter::includes | 1 | 100.0% |
| Stewart\Codegen\Attribute\AttributeSelector::__construct | 1 | 100.0% |
| Stewart\Codegen\Attribute\KeyPatterns::__construct | 1 | 100.0% |
| Stewart\Codegen\Attribute\KeyPatterns::matches | 1 | 100.0% |
| Stewart\Codegen\Attribute\KeyPatterns::exactEntries | 1 | 100.0% |
| Stewart\Codegen\Attribute\UnseenAttribute::__construct | 1 | 100.0% |
| Stewart\Codegen\Attribute\UnseenAttribute::describeWarning | 1 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::__construct | 1 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::configure | 1 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::printGenerationSummary | 1 | 100.0% |
| Stewart\Codegen\Console\GenerateCommand::printFailure | 1 | 100.0% |
| Stewart\Codegen\Emitter\EmitContext::__construct | 1 | 100.0% |
| Stewart\Codegen\Emitter\EmitContext::createNamespace | 1 | 100.0% |
| Stewart\Codegen\Emitter\EmitContext::resolveClassName | 1 | 100.0% |
| Stewart\Codegen\Emitter\EmitContext::printFile | 1 | 100.0% |
| Stewart\Codegen\Emitter\EmitContext::printStatements | 1 | 100.0% |
| Stewart\Codegen\Emitter\EntitiesRootEmitter::getClassName | 1 | 100.0% |
| Stewart\Codegen\Emitter\EntitiesRootEmitter::getClassComment | 1 | 100.0% |
| Stewart\Codegen\Emitter\EntitiesRootEmitter::listDomains | 1 | 100.0% |
| Stewart\Codegen\Emitter\EntitiesRootEmitter::getDomainClassName | 1 | 100.0% |
| Stewart\Codegen\Emitter\EntitiesRootEmitter::buildPropertyComment | 1 | 100.0% |
| Stewart\Codegen\Emitter\GeneratedCodePrinter::buildHeaderComment | 1 | 100.0% |
| Stewart\Codegen\Emitter\GeneratedCodePrinter::isGenerated | 1 | 100.0% |
| Stewart\Codegen\Emitter\GeneratedCodePrinter::printGenerated | 1 | 100.0% |
| Stewart\Codegen\Emitter\GeneratedCodePrinter::printGeneratedStatements | 1 | 100.0% |
| Stewart\Codegen\Emitter\ManifestEmitter::emitFile | 1 | 100.0% |
| Stewart\Codegen\Emitter\PhpStormMetaEmitter::buildDomainSetName | 1 | 100.0% |
| Stewart\Codegen\Emitter\PhpStormMetaEmitter::buildSetRegistration | 1 | 100.0% |
| Stewart\Codegen\Emitter\PhpStormMetaEmitter::buildExpectation | 1 | 100.0% |
| Stewart\Codegen\Emitter\ServicesRootEmitter::getClassName | 1 | 100.0% |
| Stewart\Codegen\Emitter\ServicesRootEmitter::getClassComment | 1 | 100.0% |
| Stewart\Codegen\Emitter\ServicesRootEmitter::listDomains | 1 | 100.0% |
| Stewart\Codegen\Emitter\ServicesRootEmitter::getDomainClassName | 1 | 100.0% |
| Stewart\Codegen\Emitter\ServicesRootEmitter::buildPropertyComment | 1 | 100.0% |
| Stewart\Codegen\Emitter\Entity\DomainEntitiesEmitter::supportsDomain | 1 | 100.0% |
| Stewart\Codegen\Emitter\Entity\DomainEntitiesEmitter::emitFile | 1 | 100.0% |
| Stewart\Codegen\Emitter\Entity\EntityHandleEmitter::supportsDomain | 1 | 100.0% |
| Stewart\Codegen\Emitter\Entity\EntityStateEmitter::supportsDomain | 1 | 100.0% |
| Stewart\Codegen\Emitter\Service\DomainServicesEmitter::supportsDomain | 1 | 100.0% |
| Stewart\Codegen\Entity\EntityInclusionRules::__construct | 1 | 100.0% |
| Stewart\Codegen\Entity\EntityInclusionRules::fromPatterns | 1 | 100.0% |
| Stewart\Codegen\Entity\EntityInclusionRules::allowingEverything | 1 | 100.0% |
| Stewart\Codegen\Entity\EntityInclusionRules::listUnmatchedIncludes | 1 | 100.0% |
| Stewart\Codegen\Entity\EntitySelection::__construct | 1 | 100.0% |
| Stewart\Codegen\Entity\EntitySelection::listEntityIds | 1 | 100.0% |
| Stewart\Codegen\Entity\UnmatchedEntitySelector::__construct | 1 | 100.0% |
| Stewart\Codegen\Entity\UnmatchedEntitySelector::describeWarning | 1 | 100.0% |
| Stewart\Codegen\Model\DomainCatalog::getTraitsForDomain | 1 | 100.0% |
| Stewart\Codegen\Model\DomainTraits::__construct | 1 | 100.0% |
| Stewart\Codegen\Model\GenerationModelFactory::sortedDomainNames | 1 | 100.0% |
| Stewart\Codegen\Output\CheckResult::__construct | 1 | 100.0% |
| Stewart\Codegen\Output\CheckResult::listStaleFiles | 1 | 100.0% |
| Stewart\Codegen\Output\CheckResult::isClean | 1 | 100.0% |
| Stewart\Codegen\Output\FileChange::__construct | 1 | 100.0% |
| Stewart\Codegen\Output\FileOutcome::isChange | 1 | 100.0% |
| Stewart\Codegen\Output\GeneratedFile::__construct | 1 | 100.0% |
| Stewart\Codegen\Output\OutputDirectory::__construct | 1 | 100.0% |
| Stewart\Codegen\Output\Collection\FileChangeCollection::fromChangesSortedByPath | 1 | 100.0% |
| Stewart\Codegen\Output\Collection\FileChangeCollection::filterStale | 1 | 100.0% |
| Stewart\Codegen\Output\Collection\FileChangeCollection::countWithOutcome | 1 | 100.0% |
| Stewart\Codegen\Output\Collection\FileChangeCollection::countExistingFiles | 1 | 100.0% |
| Stewart\Codegen\Output\Collection\FileChangeCollection::isClean | 1 | 100.0% |
| Stewart\Codegen\Php\Identifier::capitalizeWord | 1 | 100.0% |
| Stewart\Codegen\Php\IdentifierAllocator::__construct | 1 | 100.0% |
| Stewart\Codegen\Php\IdentifierAllocator::isReserved | 1 | 100.0% |
| Stewart\Codegen\Php\IdentifierAllocator::isTaken | 1 | 100.0% |
| Stewart\Codegen\Php\MemberReservations::__construct | 1 | 100.0% |
| Stewart\Codegen\Php\PhpType::__construct | 1 | 100.0% |
| Stewart\Codegen\Php\PhpType::fromNative | 1 | 100.0% |
| Stewart\Codegen\Php\PhpType::mixed | 1 | 100.0% |
| Stewart\Codegen\Php\PhpType::listOf | 1 | 100.0% |
| Stewart\Codegen\Php\PhpType::isPlain | 1 | 100.0% |
| Stewart\Codegen\Php\PhpType::needsDocblock | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceCatalog::__construct | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceCatalog::listDomains | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceCatalog::forDomain | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceCatalog::forEntityHandle | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceCatalogParser::parseDefinition | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceCatalogParser::parseField | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceCatalogParser::sortRequiredFirstThenByName | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceDefinition::__construct | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceField::__construct | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceSelector::__construct | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceTargetSpec::__construct | 1 | 100.0% |
| Stewart\Codegen\Service\ServiceTargetSpec::none | 1 | 100.0% |
| Stewart\Codegen\Snapshot\HaClientSnapshotFetcher::__construct | 1 | 100.0% |
| Stewart\Codegen\Snapshot\HaClientSnapshotFetcher::fetchSnapshot | 1 | 100.0% |
| Stewart\Codegen\Snapshot\RawMap::__construct | 1 | 100.0% |
| Stewart\Codegen\Snapshot\RawMap::listKeys | 1 | 100.0% |
| Stewart\Codegen\Snapshot\RawMap::readBool | 1 | 100.0% |
| Stewart\Codegen\Snapshot\RawMap::readMap | 1 | 100.0% |
| Stewart\Codegen\Snapshot\Snapshot::__construct | 1 | 100.0% |
| Stewart\Codegen\Snapshot\Snapshot::fromParts | 1 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::__construct | 1 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::encodeSnapshot | 1 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::buildSnapshotArray | 1 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::buildAreaArray | 1 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::buildFloorArray | 1 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotCodec::buildLabelArray | 1 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotFileReader::__construct | 1 | 100.0% |
| Stewart\Codegen\Snapshot\SnapshotFileWriter::__construct | 1 | 100.0% |
| Stewart\Codegen\Emitter\RootEmitter::getClassName | 0 | 100.0% |
| Stewart\Codegen\Emitter\RootEmitter::getClassComment | 0 | 100.0% |
| Stewart\Codegen\Emitter\RootEmitter::listDomains | 0 | 100.0% |
| Stewart\Codegen\Emitter\RootEmitter::getDomainClassName | 0 | 100.0% |
| Stewart\Codegen\Emitter\RootEmitter::buildPropertyComment | 0 | 100.0% |