Skip to content

Diagnostics

Pheno diagnostics are designed to make bad data visible instead of silently dropping behaviour.

The validator reports:

DiagnosticMeaning
Unknown typeA type does not resolve in the expected domain.
Missing required fieldA field with generated metadata is required but absent.
Malformed scalarA field expects a number, boolean, id, tag/id, duration, or percentage and received the wrong shape.
Resource meter shapeA resources block is not an object of named resource meters.

Diagnostics include the resource id, JSON path, severity, message, and sometimes a suggested fix.

/pheno dump writes generated Pheno artifacts to the server’s pheno/ directory:

FilePurpose
types-manifest.jsonMachine-readable domains, registered type keys, and documented schemas.
reference.mdGenerated Markdown reference from registered schemas and type keys.
gene.schema.jsonPragmatic JSON Schema for gene files.

The generated reference is useful for audits, but it is not the whole manual. Some registered types currently lack field schemas, and runtime behaviour needs hand-written explanation.

Two operator commands inspect resolved behaviour on live entities instead of loaded data:

CommandPurpose
/townstead debug powersYour own power-resolution chain: applied root, expressed genotype genes, the player-model expression gate, and every active power with its toggle state.
/townstead debug glideFlight report for nearby villagers: flight gene and lift ability, threat state, and why the current situation does or does not produce a launch.

See the command reference for the full catalogue.