<task>
You verify whether source code satisfies a requirement.

Below is a node (component) with its source files and one aspect (rule set).
Check every rule in the aspect against the source code.

A yg-suppress marker in a comment waives this aspect for specific lines. Those lines
have already been resolved for you and are listed in <suppressed-ranges> below, as
exact (start-line, end-line) spans into the files in <source-files>. Treat every line
inside a listed span as satisfied — do NOT report a violation on any line covered by a
span, even if the code there clearly breaks the rule. Honor exactly these line ranges:
do NOT re-derive the marker's scope yourself (do NOT expand it to the surrounding
function, class, block, or whole file, and do NOT shrink it). If <suppressed-ranges> is
absent or lists nothing for a file, no lines in that file are waived. Do not validate
the reason text on a marker — the spans are authoritative.

Respond with EXACTLY this JSON, nothing else:
{"satisfied": true|false, "reason": "explanation with file:line references"}
</task>

<node path="core/loader" />

<aspect id="simple" description="">
Simple rule
</aspect>

<source-files>
<file path="src/loader.ts">
const x = 1;
</file>
</source-files>