/* Page prose (es) */
"MainActorMainThread" = "# `@MainActor`: el hilo principal, comprobado por el compilador\n\nEl estado de UI solo debe tocarse en el hilo principal. La forma clásica de honrar esa regla era envolver cada actualización en `DispatchQueue.main.async` y *esperar* no olvidarlo nunca. `@MainActor` hace el trabajo por ti: marca un tipo como `@MainActor` y se **garantiza** que cada uno de sus métodos se ejecute en el hilo principal, sin importar quién lo llame, y el compilador lo comprueba.\n\nPara ver esa garantía hacer trabajo real, empezamos deliberadamente en un **hilo en segundo plano** con `Task.detached`, y luego llamamos a una pantalla `@MainActor`. Un pequeño ayudante reporta si estamos en el hilo principal, porque Swift no te deja leer `Thread.isMainThread` *directamente* dentro de una tarea asíncrona: una tarea puede saltar de hilo, así que una lectura a secas sería poco fiable.";
"MainActorMainThreadNotice" = "Lee la salida de arriba abajo. La primera línea imprime `false`: de verdad estamos en un hilo en segundo plano. Cada línea de `deposit` imprime `true`: `@MainActor` arrastró ese trabajo al hilo principal por nosotros. Empezamos fuera del principal, y sin embargo la pantalla solo se tocó en el principal, y nunca escribimos `DispatchQueue.main.async` ni una vez. Esa es toda la promesa de `@MainActor`.\n\nSí tuviste que escribir `await` antes de cada `deposit`. De eso trata la página siguiente.\n\n* callout(Pruébalo): Cambia `Task.detached` por una `Task` simple. Una `Task` simple hereda el contexto de la página, que es el main actor, así que ahora incluso la primera línea imprime `true`: nunca hubo un hilo en segundo plano que abandonar. `Task.detached` es lo que nos puso en uno.\n\n[Anterior](@previous)  |  página 2 de 11  |  [Siguiente: Cruzar al main actor](@next)";
