# Threat model This document separates demonstrated behavior from intended release work. It defines the boundary Sandwich Hime can reasonably defend; it is not a claim that the project or an application using it is universally secure. ## Security objective For supported HTML contexts, data supplied to a compiler-generated component should remain data. It must not change HTML structure, create executable code, escape a quoted attribute, or introduce a disallowed URL scheme unless trusted application source makes an explicit security-sensitive decision. That objective follows the same high-level model documented by Go's `html/template`: template authors are trusted while rendered data is not. The implementations and accepted languages differ. A systematic differential test campaign against `html/template` remains open work; current tests cover fixed adversarial cases and do not establish equivalence. ## Trusted capabilities - `.sando` source, including its static markup and embedded Go statements; - handwritten application Go and values whose formatting methods execute Go; - handwritten implementations of `sando.Component`; - explicit `sando.TrustHTML`, `TrustURL`, `TrustJS`, and `TrustCSS` calls; - the selected compiler binary, Go toolchain, runtime module, and generated Go; - local project code built and executed by `himesan dev`; and - the user account, filesystem, environment, and other processes on the development workstation. Template semantics become trusted source when built into an application; templates are not an untrusted-content sandbox. Someone allowed to edit one can execute ordinary Go through the application build and must receive the same trust as any other code contributor. Arbitrary or malformed template bytes remain adversarial input to compiler robustness while they are being inspected. A handwritten `sando.Component` is a trusted output capability. It may write arbitrary bytes, change HTML parser context, recurse, block, panic, or perform side effects. Hime-generated components are independently checked for balanced HTML and may be inserted with `