# Machine-checked subset: scripts/check-architecture.ts mechanically verifies
# browser_interop.forbidden_modules and dynamic_types for the TypeScript
# reference engine. It also verifies that the F# product-site engine contains
# no browser/JS interop authority and that its tiny C# WASM host remains a
# direct marshalling shim. Everything else in this file (state.*,
# effects.representation, capabilities.ambient_authority) is enforced by types,
# tests and review, not by this YAML declaration alone.
architecture:
  authoritative_state:
    owner: engine/domain
    mutation: transitions_only
  browser_interop:
    allowed_modules: [kernel]
    forbidden_modules: [engine]
  dynamic_types:
    allowed_modules: [kernel]
  effects:
    representation: explicit
    external_outcomes: [success, failure, cancelled, outcome_unknown]
  capabilities:
    ambient_authority: forbidden
  state:
    string_discriminators: forbidden
    exhaustive_matching: required
