This task covers:
* Implementing Recommendation #2: Allow Identifiers to be Updated from {T410896}.
=== AC
[] Developers can update an identifier for a given identifier type, e.g. `Coordinator::IDENTIFIER_TYPE_MW_USER`
[] Developers cannot update the identifier for the `Coordinator::IDENTIFIER_TYPE_EDGE_UNIQUE` identifier type
=== Example API
**PHP**
```lang=php
namespace MediaWiki\Extension\MetricsPlatform\TestKitchen;
interface Coordinator {
const IDENTIFIER_TYPE_EDGE_UNIQUE = 'edge-unique';
const IDENTIFIER_TYPE_MW_USER = 'mw-user';
const IDENTIFIER_TYPE_SEARCH_SESSION = 'search-session';
/**
* Updates the identifier.
*
* When an identifier is updated all experiments that require the
* identifier type are enrolled and the `XLab.ExperimentManager` service is
* updated with those enrollments. If this is done before the
* `BeforePageOutput` hook is run, then the output is decorated with those
* enrollments also.
*
* @throws \DomainException If the identifier type can't be updated, i.e.
* it's {@link Coordinator::IDENTIFIER_TYPE_MW_USER}
*/
public function updateIdentifier( string $identifierType, string $identifier );
}
```
=== Open Questions
[] Should there be an equivalent method for the JavaScript SDK?