None of the above. The @props directive in an anonymous component determines which attributes are to be considered data. From the example in the docs, type and message are to be considered as data
<x-alert type="error" :message="$message" class="mb-4"/>
so, the anonymous component defines both as props:
@props(['type' => 'info', 'message'])
<div {{ $attributes->merge(['class' => 'alert alert-'.$type]) }}>
{{ $message }}
</div>
In this example, class is an attribute and is available from the Attributes Bag, so the resulting markup will be:
<div class="mb-4 alert alert-error">
<!-- the value of $message variable -->
</div>