title
<short, descriptive title>
document_id
<stable-id, e.g., subsystem-YYYY-MM-DD>
status
draft
created
<UTC ISO-8601>
last_updated
<UTC ISO-8601>
version
0.1.0
engine_workspace_version
2023.1.30
wgpu_version
26.0.1
shader_backend_default
naga
winit_version
0.29.10
repo_commit
<git sha at update>
owners
reviewers
tags
Note: Place specifications under the appropriate area folder (for example,
docs/specs/rendering/) and add them to docs/specs/README.md.
Summary
State the problem and the desired outcome in one paragraph.
Include a concise rationale for introducing or changing behavior.
Goals
List concrete, testable goals.
Non-Goals
List items explicitly out of scope.
Define domain terms and acronyms on first use (for example, uniform buffer
object (UBO)). Use the acronym thereafter.
Describe components, data flow, and boundaries with existing modules.
Include a small ASCII diagram if it materially aids understanding.
API Surface
Enumerate public types, builders, functions, and commands.
Use code identifiers with backticks (for example, RenderCommand).
Behavior
Specify observable behavior, constraints, and edge cases.
Use normative language (MUST/SHOULD/MAY) where appropriate.
Validation and Errors
Document validation rules and the layer that enforces them.
Describe error conditions and error types.
Platform and device limits that apply (for example, alignments, size caps).
Data layout or serialization rules, if any.
Performance Considerations
Recommendations
State performance guidance succinctly.
Rationale: Provide a short reason for each recommendation.
Functionality
API Surface
Validation and Errors
Performance
Documentation and Examples
For each checked item, include a reference to a commit, pull request, or file
path that demonstrates the implementation.
Unit Tests
Describe coverage targets and representative cases.
Commands: cargo test -p <crate> -- --nocapture
Integration Tests
Describe scenarios and expected outputs.
Commands: cargo test --workspace
Manual Checks (if necessary)
Short, deterministic steps to validate behavior.
Compatibility and Migration
Enumerate breaking changes and migration steps, or state “None”.
Note interactions with feature flags or environment variables.
(v0.1.0) — Initial draft.