# HyperTwist architectural rules for sentrux.
# Keep this modest and source-only so the gate stays useful during active
# Unreal, browser-runtime, and website hardening work.

[constraints]
max_cycles = 0
max_cc = 60
max_fn_lines = 220
no_god_files = false

[[layers]]
name = "unreal-public-contracts"
paths = ["UnrealHyperTwist/Source/UnrealHyperTwist/Public/*"]
order = 0

[[layers]]
name = "unreal-private-runtime"
paths = ["UnrealHyperTwist/Source/UnrealHyperTwist/Private/*"]
order = 1

[[layers]]
name = "unreal-tests"
paths = ["UnrealHyperTwist/Source/UnrealHyperTwist/Tests/*"]
order = 2

[[layers]]
name = "embedded-browser-runtime"
paths = ["Content/Browser/src/*"]
order = 3

[[layers]]
name = "website-auth-server"
paths = ["website/server/src/*"]
order = 4

[[layers]]
name = "website-client"
paths = ["website/src/*"]
order = 5

[[layers]]
name = "automation-scripts"
paths = ["scripts/*"]
order = 6

[[boundaries]]
from = "website/src/*"
to = "website/server/src/*"
reason = "The browser client must not import website auth-server implementation directly."

[[boundaries]]
from = "Content/Browser/src/*"
to = "website/server/src/*"
reason = "The embedded browser runtime must stay simulator-side and not couple to website auth-server internals."

[[boundaries]]
from = "scripts/*"
to = "website/src/*"
reason = "Automation scripts should consume build artifacts or runtime contracts, not browser app internals."
