Reference

Contracts

Stability policy and public contract boundaries for the Flashboard beta surface.

Stability policy

Flashboard currently exposes a beta contract surface.

Stable-intent layers

  • src/Contracts/*
  • route naming conventions under flashboard.*
  • versioned screen payload envelope with schema_version

Soft-stable layers

  • builder implementations in src/Core/*/Builders
  • runtime assembler internals
  • layout payload details

Beta rules

  • breaking changes are allowed until 1.0
  • every breaking change must be documented in CHANGELOG.md
  • payload schema changes must update SchemaVersion
  • renamed contracts must include upgrade notes

Renderer contract

  • JSON consumers should read schema_version
  • Blade consumers should treat layout state, overlays, and notifications as public payloads

Public resource API

  • resource configuration is split into dedicated surfaces: table(), form(), detail(), infolist(), actions(), and pages()
  • detail() remains supported and infolist() is its concept-aligned alias
  • typed schema nodes are the preferred package-facing API for columns, fields, sections, tabs, filters, scopes, and entries
  • legacy array definitions remain supported as a compatibility bridge during the DSL migration
  • runtime consumers should depend on normalized payload output, not on ad hoc legacy keys
  • resource-level actions() and pages() are part of the same surface family and can be resolved through a shared resource surface model

Authorization contract

  • policy() opt-in on resources
  • ability maps for actions, fields, and relations
  • page access through canAccess()