Replace contextual links functions with ContextualLinksSerializer
### Problem/Motivation contextual_links_to_id() and contextual_id_to_links() are replaced by ContextualLinksSerializer service via FunctionToServiceRector (drupal:11.4). ### Proposed resolution Handled automatically by drupal-rector by configuring the existing upstream rule in the Drupal 12 rule set (no dedicated rule class). ### How this rule was built This rule was produced with an AI-assisted workflow in which every step was verified manually by @bbrala. Its logic started from the matching drupal-digests entry, which was adapted to drupal-rector's conventions — a dedicated rule or an existing upstream rule configured into the Drupal 12 set — and covered with before/after test fixtures. Backward-compatibility was assessed and version-gated: safe rewrites are applied directly, while unsafe ones are wrapped via `DeprecationHelper` or moved to an opt-in breaking set. The rule was then live-tested against a set of contributed modules; where no contrib call site could be found, a static code sample was written in a test module to exercise it. A final automated QA pass covered type-guard, fixture coverage, BC-decision, registration and idempotency checks. ### References - Related issue(s): [#3568087](https://www.drupal.org/i/3568087) ### Work items - Commit(s): [aa8114e428](https://github.com/palantirnet/drupal-rector/commit/aa8114e428e3) ### Credit - Implemented by: @bbrala --- *Filed retroactively as part of the Drupal 12 rector coverage effort. Closed as fixed; credit to be applied to the contributors listed above.* *AI was used extensively to build this rule and to file this issue. See [Dries Buytaert: AI-generated Rector rules for Drupal](https://dri.es/ai-generated-rector-rules-for-drupal) and [Björn Brala: Drupal Rector rules are config, not code. Mostly.](https://www.linkedin.com/pulse/drupal-rector-rules-config-code-mostly-bj%C3%B6rn-brala-vfpwe/).*
issue