Require `ContentTemplate`s to have at least one `dynamic` or `host-entity-url` prop source
>>> [!note] Migrated issue
<!-- Drupal.org comment -->
<!-- Migrated from issue #3541054. -->
Reported by: [tedbow](https://www.drupal.org/user/240860)
Related to !216
>>>
<h3 id="overview">Overview</h3>
<p>Originally Content Templates were required have at least 1 dynamic prop source.</p>
<p>It was enforce by the schema </p>
<pre> ComponentTreeMeetRequirements:<br> inputs:<br> absence:<br> - adapter<br> # This tree MUST contain at least one dynamic prop source, or it's not much of a template;<br> # it's just presenting static data.<br> presence:<br> - dynamic<br> - host-entity-url</pre><p>
but this meant that in many issues in <span class="drupalorg-gitlab-issue-link drupalorg-gitlab-link-wrapper"><a href="https://git.drupalcode.org/project/canvas/-/work_items/3541000" class="drupalorg-gitlab-link">https://git.drupalcode.org/project/canvas/-/work_items/3541000</a></span> were blocked by this requirement.<br>
Because these were not done<br>
<span class="drupalorg-gitlab-issue-link drupalorg-gitlab-link-wrapper"><a href="https://git.drupalcode.org/project/canvas/-/work_items/3513590" class="drupalorg-gitlab-link">https://git.drupalcode.org/project/canvas/-/work_items/3513590</a></span><br>
<span class="drupalorg-gitlab-issue-link project-issue-status-info project-issue-status-7"><a href="https://www.drupal.org/project/experience_builder/issues/3510896" title="Status: Closed (fixed)">#3510896: Add a new internal HTTP API for candidate `DynamicPropSource`s to enable a `ContentTemplate` UI</a></span></p>
<p>It also allowed<br>
<span class="drupalorg-gitlab-issue-link drupalorg-gitlab-link-wrapper"><a href="https://git.drupalcode.org/project/canvas/-/work_items/3541021" class="drupalorg-gitlab-link">https://git.drupalcode.org/project/canvas/-/work_items/3541021</a></span><br>
<span class="drupalorg-gitlab-issue-link drupalorg-gitlab-link-wrapper"><a href="https://git.drupalcode.org/project/canvas/-/work_items/3541031" class="drupalorg-gitlab-link">https://git.drupalcode.org/project/canvas/-/work_items/3541031</a></span><br>
which were the first 2 issue creating the UI to be completed without solving all the dynamic link problem</p>
<h3 id="proposed-resolution">Proposed resolution</h3>
<p>Add back enforcement and the test coverage that was removed in <span class="drupalorg-gitlab-issue-link drupalorg-gitlab-link-wrapper"><a href="https://git.drupalcode.org/project/canvas/-/work_items/3541021" class="drupalorg-gitlab-link">https://git.drupalcode.org/project/canvas/-/work_items/3541021</a></span><br>
There was test MR that shows just the changes that need to reversed <a href="https://git.drupalcode.org/project/experience_builder/-/merge_requests/1438">https://git.drupalcode.org/project/experience_builder/-/merge_requests/1438</a></p>
<h3 id="ui-changes">User interface changes</h3>
> Related issue: [Issue #3510896](https://www.drupal.org/node/3510896)
issue